package com.slytherin.sns.spider.work;

import com.slytherin.sns.spider.page.Page;
import com.slytherin.sns.spider.result.Request;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.selector.Html;

public abstract class AbstractDownloader implements Downloader {

    /**
     * A simple method to download a url.
     *
     * @param url url
     * @return html
     */
    public Html download(String url) {
        return download(url, null);
    }

    /**
     * A simple method to download a url.
     *
     * @param url url
     * @param charset charset
     * @return html
     */
    public Html download(String url, String charset) {
        Page page = download(new Request(url), Site.me().setCharset(charset).toTask());
        return (Html) page.getHtml();
    }

    protected void onSuccess(Request request) {
        // 页面下载成功后需要做的事情
        // 对页面进行处理 可以用来解密js加密的问题
    }

    protected void onError(Request request) {
        // 页面下载失败后的处理策略
    }
}
